//----------------------------------------------------------------------------------
// CPlayer class
// Author: Jose De Gouveia
//
// Description:
// Clase que representa un jugador 
//----------------------------------------------------------------------------------

#ifndef PLAYER_H
#define PLAYER_H

#include <string>
#include "Utils/Base.h"
#include "PlayerDef.h"
#include "PlayerInput.h"

using namespace std;

class CPlayer {
public:
//Metodos
	CPlayer(const string  &name) : m_sName(""), m_iScore(0), m_vPosition(), m_eSymbol(SYMBOL_0){ Init(); }
	virtual ~CPlayer() { Done(); }

	// Protocolo inicio/fin
	bool           Init        ();
	void           Done        ();
	bool           IsOk        () const { return m_bIsOk; }

	//Setters
	void		   SetScore	   (int score);
	void		   SetSymbol   (ESymbol symbol);
	void		   SetPosition (Vect2f  &position);
	void		   SetInput	   (CPlayerInput  *input);

	//Getters
	int			   GetScore();
	Vect2f		   GetPosition();
	CPlayerInput*  GetInput();
	string		   GetName();
	ESymbol		   GetSymbol();


private:
	void           Release    ();

	// Members
	bool           m_bIsOk;
	string		   m_sName;
	int			   m_iScore;
	Vect2f		   m_vPosition;
	CPlayerInput  *m_PlayerInput;
	ESymbol		   m_eSymbol;

};
#endif